/**
 * 系统配置模块 - 通风配置功能
 * 处理智能通风配置的获取和修改
 */

// 初始化通风配置模块
function initVentilationConfig() {
    console.log('初始化通风配置模块');
    
    // 加载通风配置数据
    loadVentilationConfigData();
    
    // 绑定修改按钮事件
    bindEditButtons();
}

/**
 * 从Android获取通风配置列表数据
 */
function loadVentilationConfigData() {
    // 检查是否应该使用模拟数据
    if (shouldUseMockData()) {
        console.log('使用模拟数据');
        // 在非Android环境中，可以使用页面上的默认数据
        return;
    }
    
    console.log('正在从Android获取通风配置数据...');
    
    // 调用Android接口获取通风配置列表
    callAndroidMethodAsync('getVentilationConfigList', {})
        .then(response => {
            console.log('获取通风配置数据成功:', response);
            
            if (response.success && response.data) {
                // 更新页面上的通风配置数据
                updateVentilationConfigUI(response.data);
            } else {
                console.error('获取通风配置数据失败:', response.message || '未知错误');
                showToast('获取通风配置数据失败: ' + (response.message || '未知错误'), 'error');
            }
        })
        .catch(error => {
            console.error('调用Android接口出错:', error);
            showToast('获取通风配置数据失败', 'error');
        });
}

/**
 * 更新通风配置UI
 * @param {Array} configList 通风配置列表
 */
function updateVentilationConfigUI(configList) {
    if (!Array.isArray(configList) || configList.length === 0) {
        console.log('通风配置列表为空或格式不正确');
        return;
    }
    
    // 获取表格内容区域
    const tableBody = document.querySelector('#ventilation-content .device-table tbody');
    if (!tableBody) {
        console.error('找不到通风配置表格');
        return;
    }
    
    // 遍历配置列表，更新UI
    configList.forEach(config => {
        // 根据设备类型找到对应的行
        let deviceType = '';
        switch (config.deviceType) {
            case 'NATURAL_WINDOW':
                deviceType = '自然通风窗';
                break;
            case 'AXIAL_FAN':
                deviceType = '轴流风机';
                break;
            case 'CIRCULATION_FAN':
                deviceType = '环流风机';
                break;
            default:
                console.log(`未知设备类型: ${config.deviceType}`);
                return;
        }
        
        const row = tableBody.querySelector(`tr[data-device-type="${deviceType}"]`);
        if (!row) {
            console.log(`找不到设备类型为 ${deviceType} 的行`);
            return;
        }
        
        // 更新温度
        const tempCell = row.querySelector('td[data-param="temp"] .value-text');
        if (tempCell) {
            tempCell.textContent = config.targetTemperature || '25';
        }
        
        // 更新湿度
        const humidityCell = row.querySelector('td[data-param="humidity"] .value-text');
        if (humidityCell) {
            humidityCell.textContent = config.targetHumidity || '60';
        }
        
        // 更新时间范围
        const timeRangeCell = row.querySelector('td[data-param="time-range"] .value-text');
        if (timeRangeCell) {
            timeRangeCell.textContent = `${config.startTime || '08:00'}-${config.endTime || '18:00'}`;
        }
        
        // 更新持续时间
        const durationCell = row.querySelector('td[data-param="duration"] .value-text');
        if (durationCell) {
            durationCell.textContent = config.duration || '30';
        }
    });
    
    console.log('通风配置UI更新完成');
}

/**
 * 绑定修改按钮事件
 */
function bindEditButtons() {
    document.querySelectorAll('#ventilation-content .device-table .edit-btn').forEach(button => {
        button.addEventListener('click', function() {
            const row = this.closest('tr');
            const deviceType = row.getAttribute('data-device-type');
            
            // 获取当前值
            const tempValue = row.querySelector('td[data-param="temp"] .value-text').textContent;
            const humidityValue = row.querySelector('td[data-param="humidity"] .value-text').textContent;
            const timeRange = row.querySelector('td[data-param="time-range"] .value-text').textContent;
            const durationValue = row.querySelector('td[data-param="duration"] .value-text').textContent;
            
            // 解析时间范围
            const [startTime, endTime] = timeRange.split('-');
            
            // 显示编辑表单
            showFormModal({
                title: `修改${deviceType}配置`,
                fields: [
                    {
                        name: 'targetTemperature',
                        label: '目标温度 (℃)',
                        type: 'number',
                        value: tempValue,
                        required: true,
                    },
                    {
                        name: 'targetHumidity',
                        label: '目标湿度 (%)',
                        type: 'number',
                        value: humidityValue,
                        required: true,
                    },
                    {
                        name: 'startTime',
                        label: '开始时间',
                        type: 'time',
                        value: startTime,
                        required: true,
                    },
                    {
                        name: 'endTime',
                        label: '结束时间',
                        type: 'time',
                        value: endTime,
                        required: true,
                    },
                    {
                        name: 'duration',
                        label: '持续时间 (分钟)',
                        type: 'number',
                        value: durationValue,
                        required: true,
                    }
                ],
                submitText: '保存',
                cancelText: '取消',
                onSubmit: function(formData) {
                    // 转换设备类型为后端识别的格式
                    let deviceTypeCode = '';
                    switch (deviceType) {
                        case '自然通风窗':
                            deviceTypeCode = 'NATURAL_WINDOW';
                            break;
                        case '轴流风机':
                            deviceTypeCode = 'AXIAL_FAN';
                            break;
                        case '环流风机':
                            deviceTypeCode = 'CIRCULATION_FAN';
                            break;
                    }
                    
                    // 构建更新数据
                    const updateData = {
                        deviceType: deviceTypeCode,
                        targetTemperature: parseInt(formData.targetTemperature),
                        targetHumidity: parseInt(formData.targetHumidity),
                        startTime: formData.startTime,
                        endTime: formData.endTime,
                        duration: parseInt(formData.duration)
                    };
                    
                    // 调用Android接口更新配置
                    updateVentilationConfig(updateData, deviceType);
                    closeModal();
                }
            });
        });
    });
}

/**
 * 更新通风配置
 * @param {Object} configData 配置数据
 * @param {string} deviceTypeName 设备类型名称（用于显示）
 */
function updateVentilationConfig(configData, deviceTypeName) {
    console.log('正在更新通风配置:', configData);
    
    // 检查是否应该使用模拟数据
    if (shouldUseMockData()) {
        console.log('使用模拟数据，模拟更新成功');
        
        // 更新UI
        const row = document.querySelector(`#ventilation-content .device-table tr[data-device-type="${deviceTypeName}"]`);
        if (row) {
            row.querySelector('td[data-param="temp"] .value-text').textContent = configData.targetTemperature;
            row.querySelector('td[data-param="humidity"] .value-text').textContent = configData.targetHumidity;
            row.querySelector('td[data-param="time-range"] .value-text').textContent = `${configData.startTime}-${configData.endTime}`;
            row.querySelector('td[data-param="duration"] .value-text').textContent = configData.duration;
        }
        
        showToast(`${deviceTypeName}配置已更新`, 'success');
        return;
    }
    
    // 调用Android接口更新配置
    callAndroidMethodAsync('updateVentilationConfig', configData)
        .then(response => {
            console.log('更新通风配置结果:', response);
            
            if (response.success) {
                // 更新UI
                const row = document.querySelector(`#ventilation-content .device-table tr[data-device-type="${deviceTypeName}"]`);
                if (row) {
                    row.querySelector('td[data-param="temp"] .value-text').textContent = configData.targetTemperature;
                    row.querySelector('td[data-param="humidity"] .value-text').textContent = configData.targetHumidity;
                    row.querySelector('td[data-param="time-range"] .value-text').textContent = `${configData.startTime}-${configData.endTime}`;
                    row.querySelector('td[data-param="duration"] .value-text').textContent = configData.duration;
                }
                
                showToast(`${deviceTypeName}配置已更新`, 'success');
            } else {
                console.error('更新通风配置失败:', response.message || '未知错误');
                showToast(`更新${deviceTypeName}配置失败: ${response.message || '未知错误'}`, 'error');
            }
        })
        .catch(error => {
            console.error('调用Android接口出错:', error);
            showToast(`更新${deviceTypeName}配置失败`, 'error');
        });
} 